Use case: Get temperature with software/hardware trigger (interrupt mode) ¶
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
DTS_HandleTypeDef hdts;
hdts.Init.TriggerInput = DTS_TRIGGER_SOFTWARE; /* DTS_TRIGGER_LPTIMER2 for HW trigger*/
HAL_DTS_Init(&hdts);
HAL_DTS_Start_IT(&hdts);
HAL_DTS_GetTemperature(&hdts, &temp);
HAL_DTS_Stop_IT(&hdts);
|
hal_dts_handle_t hDTS;
HAL_DTS_Init(&hDTS, HAL_DTS);
hal_dts_sensor_config_t sensor_cfg;
int32_t temp;
sensor_cfg.trigger = HAL_DTS_TRIGGER_SOFTWARE; /* HAL_DTS_TRIGGER_LPTIM2_CH1 for HW trigger */
sensor_cfg.sampling_time = HAL_DTS_SAMPLING_TIME_1_CYCLE;
HAL_DTS_SetConfigSensor(&hDTS, HAL_DTS_SENSOR_1, &sensor_cfg);
HAL_DTS_StartSensor_IT(&hDTS, HAL_DTS_SENSOR_1);
HAL_DTS_GetSensorTemperature(&hDTS, HAL_DTS_SENSOR_1, &temp);
HAL_DTS_StopSensor_IT(&hDTS, HAL_DTS_SENSOR_1);
|
Key changes ¶
HAL2 uses per-sensor interrupt start/stop APIs (
HAL_DTS_StartSensor_IT()andHAL_DTS_StopSensor_IT()).The HAL2 completion callback is consolidated as
HAL_DTS_CpltCallback.

